//
//  WBHomeViewController.swift
//  XtWeiBo
//
//  Created by 徐腾 on 2017/7/18.
//  Copyright © 2017年 徐腾. All rights reserved.
//

import UIKit

private let cellId = "cellId"

class WBHomeViewController: WBBaseViewController {

    /// 数据源数组
    lazy var listArray = [String]()
    
    override func viewDidLoad() {
        super.viewDidLoad()

    }

    /// 测试 navigationController 控制器
    func showFriends() {
        let vc = WBDemoViewController()
        navigationController?.pushViewController(vc, animated: true)
    }
    
    
    /// 加载数据方法
    override func loadData() {
        
        print("开始加载数据")
        /// 延迟加载
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) { 
            
            for i in 0..<20 {
                if self.isPullDown {
                    self.listArray.append("上拉 \(i)")
                } else {
                    // 将数据每次都插入到表格的顶部
                    self.listArray.insert(i.description, at: 0)
                }
            }
            
            print("加载数据结束")
            
            // 结束刷新动作
            self.refreshControl?.endRefreshing()
            
            // 恢复上拉刷新的判断条件
            self.isPullDown = false
            
            // 刷新列表
            self.tableView?.reloadData()
        }
    }
    
}

extension WBHomeViewController {
    
    override func setupTableView() {
        super.setupTableView()
        
        // 自定义左边的tabBarItem
        navItem.leftBarButtonItem = UIBarButtonItem(title: "好友", target: self, action: #selector(showFriends))
        
        // 注册cell
        tableView?.register(UITableViewCell.self, forCellReuseIdentifier: cellId)
    }
    
}


// MARK: - 表格数据源方法  具体的数据源方法不需要 super
extension WBHomeViewController {
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return listArray.count
    }
    
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath)
        
        cell.textLabel?.text = listArray[indexPath.row]
        
        return cell
    }
    
}


